import Mock from 'mockjs'

// 模拟剧本列表数据
const dramaList = Mock.mock({
  'list|10-20': [{
    'id|+1': 1,
    'name': '@ctitle(5, 20)',
    'cover': '@image("400x300", "#4A7BF7", "#fff", "Drama")',
    'publishTime': '@datetime',
    'status|1': ['published', 'draft'],
    'progress|1': ['0', '50', '100'],
    'author': '@cname',
    'description': '@cparagraph(1, 3)'
  }]
}).list

// 生成默认分集数据
const generateDefaultEpisodes = (dramaId) => {
  const episodes = []
  
  for (let i = 1; i <= 5; i++) {
    episodes.push({
      id: i,
      dramaId,
      name: `第${i}集`,
      status: i % 2 === 0 ? 'confirmed' : 'unconfirmed',
      createdAt: Mock.Random.datetime(),
      updatedAt: Mock.Random.datetime(),
      description: Mock.Random.cparagraph(1, 3),
      storyboard: {
        status: i % 2 === 0 ? 'confirmed' : 'unconfirmed',
        items: Array.from({ length: 5 }).map((_, idx) => ({
          id: idx + 1,
          sceneName: `${i}-${idx + 1} 场景`,
          sceneDesc: Mock.Random.csentence(10, 20)
        }))
      },
      gallery: {
        status: i % 2 === 0 ? 'confirmed' : 'unconfirmed',
        images: Array.from({ length: 8 }).map((_, idx) => ({
          id: idx + 1,
          sceneImageUrl: `https://picsum.photos/400/225?random=${i * 10 + idx}`,
          sceneImagePrompt: Mock.Random.csentence(10, 20)
        }))
      }
    })
  }
  
  return episodes
}

// 剧本列表
Mock.mock(/\/api\/evox-drama\/drama\/list/, 'get', (options) => {
  const { url } = options
  const params = new URLSearchParams(url.split('?')[1])
  const page = parseInt(params.get('page')) || 1
  const limit = parseInt(params.get('limit')) || 10
  
  const startIndex = (page - 1) * limit
  const endIndex = startIndex + limit
  
  const pageList = dramaList.slice(startIndex, endIndex)
  
  return {
    status: 0,
    code: 0,
    message: 'success',
    data: {
      total: dramaList.length,
      list: pageList,
      page,
      limit
    },
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 剧本详情
Mock.mock(/\/api\/evox-drama\/drama\/detail\/\d+/, 'get', (options) => {
  const id = parseInt(options.url.match(/\/api\/evox-drama\/drama\/detail\/(\d+)/)[1])
  const drama = dramaList.find(item => item.id === id)
  
  if (!drama) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: drama,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 根据ID获取剧本详情(新接口)
Mock.mock(/\/api\/evox-drama\/drama\/drama-id\/\d+/, 'get', (options) => {
  const id = parseInt(options.url.match(/\/api\/evox-drama\/drama\/drama-id\/(\d+)/)[1])
  const drama = dramaList.find(item => item.id === id)
  
  if (!drama) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: drama,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 创建剧本
Mock.mock(/\/api\/evox-drama\/drama\/create/, 'post', (options) => {
  const dramaData = JSON.parse(options.body)
  
  const newDrama = {
    dramaId: Date.now().toString(),
    dramaName: dramaData.dramaName,
    coverUrl: 'https://picsum.photos/800/450?random=' + Math.floor(Math.random() * 100),
    createAt: new Date().toISOString(),
    updateAt: new Date().toISOString(),
    status: 'draft',
    progress: '0',
    createUser: dramaData.createUser || '',
    dramaDesc: dramaData.dramaDesc || ''
  }
  
  return {
    status: 200,
    code: 0,
    message: '剧本创建成功',
    data: newDrama,
    timestamp: new Date().toISOString()
  }
})

// 更新剧本
Mock.mock(/\/api\/evox-drama\/drama\/update/, 'put', (options) => {
  const updateData = JSON.parse(options.body)
  const index = dramaList.findIndex(item => item.id === updateData.id)
  
  if (index === -1) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  const updatedDrama = {
    ...dramaList[index],
    ...updateData,
    updatedAt: new Date().toISOString()
  }
  
  dramaList.splice(index, 1, updatedDrama)
  
  return {
    status: 200,
    code: 0,
    message: '剧本更新成功',
    data: updatedDrama,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 删除剧本
Mock.mock(/\/api\/evox-drama\/drama\/drama-id\/\d+/, 'delete', (options) => {
  const id = parseInt(options.url.match(/\/api\/evox-drama\/drama\/drama-id\/(\d+)/)[1])
  const index = dramaList.findIndex(item => item.id === id)
  
  if (index === -1) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  dramaList.splice(index, 1)
  
  return {
    status: 200,
    code: 0,
    message: '剧本删除成功',
    data: null,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 发布剧本
Mock.mock(/\/api\/evox-drama\/drama\/publish\/\d+/, 'put', (options) => {
  const id = parseInt(options.url.match(/\/api\/evox-drama\/drama\/publish\/(\d+)/)[1])
  const drama = dramaList.find(item => item.id === id)
  
  if (!drama) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  drama.status = 'published'
  drama.publishTime = new Date().toISOString()
  
  return {
    status: 200,
    code: 0,
    message: '剧本发布成功',
    data: drama,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 取消发布剧本
Mock.mock(/\/api\/evox-drama\/drama\/unpublish\/\d+/, 'put', (options) => {
  const id = parseInt(options.url.match(/\/api\/evox-drama\/drama\/unpublish\/(\d+)/)[1])
  const drama = dramaList.find(item => item.id === id)
  
  if (!drama) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  drama.status = 'draft'
  
  return {
    status: 200,
    code: 0,
    message: '剧本取消发布成功',
    data: drama,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 获取分集列表
Mock.mock(/\/api\/evox-drama\/drama\/episodes\/\d+/, 'get', (options) => {
  const dramaId = parseInt(options.url.match(/\/api\/evox-drama\/drama\/episodes\/(\d+)/)[1])
  const drama = dramaList.find(item => item.id === dramaId)
  
  if (!drama) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  // 生成该剧本的分集数据
  const episodes = generateDefaultEpisodes(dramaId)
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: episodes,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 更新分集
Mock.mock(/\/api\/evox-drama\/drama\/episodes\/\d+\/\d+/, 'put', (options) => {
  const matches = options.url.match(/\/api\/evox-drama\/drama\/episodes\/(\d+)\/(\d+)/)
  const dramaId = parseInt(matches[1])
  const episodeId = parseInt(matches[2])
  const updateData = JSON.parse(options.body)
  
  return {
    status: 200,
    code: 0,
    message: '分集更新成功',
    data: {
      id: episodeId,
      dramaId,
      ...updateData,
      updatedAt: new Date().toISOString()
    },
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 创建分集
Mock.mock(/\/api\/evox-drama\/drama\/episodes\/\d+$/, 'post', (options) => {
  const dramaId = parseInt(options.url.match(/\/api\/evox-drama\/drama\/episodes\/(\d+)/)[1])
  const episodeData = JSON.parse(options.body)
  
  const newEpisode = {
    id: Date.now(),
    dramaId,
    ...episodeData,
    createdAt: new Date().toISOString(),
    updatedAt: new Date().toISOString()
  }
  
  return {
    status: 200,
    code: 0,
    message: '分集创建成功',
    data: newEpisode,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 删除分集
Mock.mock(/\/api\/evox-drama\/drama\/episodes\/\d+\/\d+/, 'delete', (options) => {
  return {
    status: 200,
    code: 0,
    message: '分集删除成功',
    data: null,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 获取剧本分集列表（新接口）
Mock.mock(/\/api\/evox-drama\/series\/drama\/\d+/, 'get', (options) => {
  const dramaId = parseInt(options.url.match(/\/api\/evox-drama\/series\/drama\/(\d+)/)[1])
  const drama = dramaList.find(item => item.id === dramaId)
  
  if (!drama) {
    return {
      status: 404,
      code: 0,
      message: '剧本不存在',
      data: null,
      timestamp: '2025-06-26T09:19:11.397445175'
    }
  }
  
  // 生成该剧本的分集数据
  const episodes = generateDefaultEpisodes(dramaId)
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: episodes,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 获取剧本演员
Mock.mock(/\/api\/evox-drama\/actor\/list\/\d+/, 'get', (options) => {
  const dramaId = parseInt(options.url.match(/\/api\/evox-drama\/actor\/list\/(\d+)/)[1])
  
  // 生成模拟角色数据
  const actors = [
    {
      id: 1,
      dramaId,
      actorName: '主角',
      actorAlias: '故事的主要人物，性格坚毅，充满正义感',
      wholeBodyFrontImageUrl: 'https://picsum.photos/400/400?random=1',
      wholeBodySideImageUrl: 'https://picsum.photos/400/400?random=2',
      wholeBodyBackImageUrl: 'https://picsum.photos/400/400?random=3',
      halfBodyImageUrl: 'https://picsum.photos/400/600?random=4'
    },
    {
      id: 2,
      dramaId,
      actorName: '女主角',
      actorAlias: '聪明独立的女性，是故事的关键人物',
      wholeBodyFrontImageUrl: 'https://picsum.photos/400/400?random=5',
      wholeBodySideImageUrl: 'https://picsum.photos/400/400?random=6',
      wholeBodyBackImageUrl: 'https://picsum.photos/400/400?random=7',
      halfBodyImageUrl: 'https://picsum.photos/400/600?random=8'
    }
  ]
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: actors,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 创建角色
Mock.mock(/\/api\/evox-drama\/actor\/create/, 'post', (options) => {
  const actorData = JSON.parse(options.body)
  
  const newActor = {
    actorId: Date.now().toString(),
    actorName: actorData.actorName,
    actorAlias: actorData.actorAlias || '',
    actorDescription: actorData.actorDescription || '',
    dramaId: actorData.dramaId,
    wholeBodyFrontImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    wholeBodySideImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    wholeBodyBackImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    halfBodyImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    createAt: new Date().toISOString(),
    updateAt: new Date().toISOString()
  }
  
  return {
    status: 200,
    code: 0,
    message: '角色创建成功',
    data: newActor,
    timestamp: new Date().toISOString()
  }
})

// 更新角色
Mock.mock(/\/api\/evox-drama\/actor\/update/, 'put', (options) => {
  const actorData = JSON.parse(options.body)
  
  const updatedActor = {
    actorId: actorData.actorId,
    actorName: actorData.actorName,
    actorAlias: actorData.actorAlias || '',
    actorDescription: actorData.actorDescription || '',
    dramaId: actorData.dramaId,
    wholeBodyFrontImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    wholeBodySideImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    wholeBodyBackImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    halfBodyImageUrl: 'https://picsum.photos/200/300?random=' + Math.floor(Math.random() * 100),
    updateAt: new Date().toISOString()
  }
  
  return {
    status: 200,
    code: 0,
    message: '角色更新成功',
    data: updatedActor,
    timestamp: new Date().toISOString()
  }
})

// 获取剧本场景
Mock.mock(/\/api\/evox-drama\/scene\/list/, 'get', (options) => {
  const { url } = options
  const params = new URLSearchParams(url.split('?')[1])
  const dramaId = params.get('dramaId')
  
  // 生成模拟场景数据
  const scenes = [
    {
      id: 1,
      dramaId,
      sceneName: '城市街道',
      sceneDesc: '繁忙的都市街道，车水马龙',
      sceneImageUrl: 'https://picsum.photos/800/450?random=13',
      sceneImagePrompt: '现代城市街道，高楼大厦，人来人往，阳光明媚'
    },
    {
      id: 2,
      dramaId,
      sceneName: '咖啡厅',
      sceneDesc: '温馨舒适的咖啡厅，是主角常去的地方',
      sceneImageUrl: 'https://picsum.photos/800/450?random=14',
      sceneImagePrompt: '温馨的咖啡厅内部，木质桌椅，柔和灯光，窗外是城市景色'
    }
  ]
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: scenes,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 创建场景
Mock.mock(/\/api\/evox-drama\/scene\/create/, 'post', (options) => {
  const sceneData = JSON.parse(options.body)
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: {
      ...sceneData,
      id: Date.now()
    },
    timestamp: new Date().toISOString()
  }
})

// 更新场景
Mock.mock(/\/api\/evox-drama\/scene\/update/, 'put', (options) => {
  const sceneData = JSON.parse(options.body)
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: sceneData,
    timestamp: new Date().toISOString()
  }
})

// 获取分镜列表
Mock.mock(/\/api\/evox-drama\/storyboard\/list\/\d+/, 'get', (options) => {
  const dramaId = parseInt(options.url.match(/\/api\/evox-drama\/storyboard\/list\/(\d+)/)[1])
  
  // 生成模拟分镜数据
  const storyboards = Array.from({ length: 5 }).map((_, idx) => ({
    id: idx + 1,
    dramaId,
    name: `分镜${idx + 1}`,
    content: `分镜${idx + 1}的内容描述`,
    createdAt: new Date().toISOString(),
    updatedAt: new Date().toISOString()
  }))
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: storyboards,
    timestamp: '2025-06-26T09:19:11.397445175'
  }
})

// 初始化场景列表
Mock.mock(/\/api\/evox-drama\/scene\/init/, 'post', (options) => {
  const { url } = options
  const params = new URLSearchParams(url.split('?')[1])
  const dramaId = params.get('dramaId')
  
  return {
    status: 200,
    code: 0,
    message: 'success',
    data: true,
    timestamp: new Date().toISOString()
  }
})

export default [
  {
    url: '/evox-drama/drama/list',
    method: 'get',
    response: () => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: {
          total: 2,
          list: [
            {
              dramaId: 1936646128946860032,
              dramaName: '测试剧本名称',
              dramaDesc: '这是一个测试剧本的描述信息',
              fileUrl: 'https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/59f1ce1c0ae14b2d9bef600252271e2f.pdf?Expires=1750904351&OSSAccessKeyId=LTAI5tF548xPspffNfBzLxQN&Signature=g04FHCg35rjJu53GlqObRz5EZ8s%3D',
              companyName: '测试公司',
              price: 50000,
              createUser: '张三',
              createAt: 1750567392943,
              updateAt: 1750567392943
            },
            {
              dramaId: 1935309965137526784,
              dramaName: '测试剧本',
              dramaDesc: '哈哈哈',
              fileUrl: 'https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/18/bae2dd58b792449d8bb41ce399514d9a.txt?Expires=1750904351&OSSAccessKeyId=LTAI5tF548xPspffNfBzLxQN&Signature=GFSbpJUeyBV6qMKFqZxBCV2vn9U%3D',
              companyName: 'giao',
              price: 10000,
              createUser: 'haoshuai03',
              createAt: 1750248826666,
              updateAt: 1750248826666
            }
          ]
        },
        timestamp: '2025-06-26T09:19:11.397445175'
      }
    }
  },
  {
    url: '/evox-drama/drama/detail/:id',
    method: 'get',
    response: ({ params }) => {
      const { id } = params;
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: {
          dramaId: Number(id),
          dramaName: '测试剧本名称',
          dramaDesc: '这是一个测试剧本的描述信息',
          fileUrl: 'https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/59f1ce1c0ae14b2d9bef600252271e2f.pdf?Expires=1750904351&OSSAccessKeyId=LTAI5tF548xPspffNfBzLxQN&Signature=g04FHCg35rjJu53GlqObRz5EZ8s%3D',
          companyName: '测试公司',
          price: 50000,
          createUser: '张三',
          createAt: 1750567392943,
          updateAt: 1750567392943
        },
        timestamp: '2025-06-26T09:19:11.397445175'
      }
    }
  },
  {
    url: '/evox-drama/drama/create',
    method: 'post',
    response: () => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: {
          dramaId: 1936646128946860099,
          dramaName: '新创建的剧本',
          dramaDesc: '这是一个新创建的剧本描述',
          fileUrl: 'https://example.com/file.pdf',
          companyName: '测试公司',
          price: 30000,
          createUser: '张三',
          createAt: Date.now(),
          updateAt: Date.now()
        },
        timestamp: new Date().toISOString()
      }
    }
  },
  {
    url: '/evox-drama/drama/update',
    method: 'put',
    response: () => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: null,
        timestamp: new Date().toISOString()
      }
    }
  },
  {
    url: '/evox-drama/drama/delete/:id',
    method: 'delete',
    response: () => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: null,
        timestamp: new Date().toISOString()
      }
    }
  },
  {
    url: '/evox-drama/drama/drama-id/:id',
    method: 'get',
    response: ({ params }) => {
      const { id } = params;
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: {
          dramaId: Number(id),
          dramaName: '测试剧本名称',
          dramaDesc: '这是一个测试剧本的描述信息，包含了剧情简介、创作背景等内容。这个剧本讲述了一个发生在未来世界的故事，主角通过自己的努力和坚持，最终改变了自己的命运。',
          fileUrl: 'https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/59f1ce1c0ae14b2d9bef600252271e2f.pdf',
          companyName: '测试影视公司',
          price: 50000,
          createUser: '张三',
          createAt: 1750567392943,
          updateAt: 1750567392943,
          coverUrl: 'https://picsum.photos/800/450?random=1',
          status: 0
        },
        timestamp: '2025-06-26T09:19:11.397445175'
      }
    }
  },
  {
    url: '/evox-drama/scene/list',
    method: 'get',
    response: ({ query }) => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: {
          total: 4,
          list: [
            {
              id: 1,
              sceneName: '城市街道',
              sceneDesc: '繁忙的都市街道，车水马龙',
              sceneImageUrl: 'https://picsum.photos/800/450?random=13',
              sceneImagePrompt: '现代城市街道，高楼大厦，人来人往，阳光明媚'
            },
            {
              id: 2,
              sceneName: '咖啡厅',
              sceneDesc: '温馨舒适的咖啡厅，是主角常去的地方',
              sceneImageUrl: 'https://picsum.photos/800/450?random=14',
              sceneImagePrompt: '温馨的咖啡厅内部，木质桌椅，柔和灯光，窗外是城市景色'
            },
            {
              id: 3,
              sceneName: '公园',
              sceneDesc: '城市中心的绿洲，树木繁茂',
              sceneImageUrl: 'https://picsum.photos/800/450?random=15',
              sceneImagePrompt: '城市公园，绿树成荫，有湖泊和小径，人们在散步'
            },
            {
              id: 4,
              sceneName: '办公室',
              sceneDesc: '现代化的办公环境，明亮整洁',
              sceneImageUrl: 'https://picsum.photos/800/450?random=16',
              sceneImagePrompt: '现代办公室，玻璃隔断，电脑工作站，明亮的灯光'
            }
          ]
        },
        timestamp: new Date().toISOString()
      }
    }
  },
  {
    url: '/evox-drama/actor/basic-list/:dramaId',
    method: 'get',
    response: () => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: {
          total: 3,
          list: [
            {
              id: 1,
              name: '主角',
              description: '故事的核心人物，勇敢正直',
              wholeBodyFrontImageUrl: 'https://picsum.photos/400/400?random=1',
              mainPrompt: '年轻男性，黑发，穿着休闲，表情坚定',
              mainDescription: '主角正面特写',
              wholeBodySideImageUrl: 'https://picsum.photos/400/400?random=2',
              sidePrompt: '年轻男性，黑发，穿着休闲，侧面视角',
              sideDescription: '主角侧面特写',
              wholeBodyBackImageUrl: 'https://picsum.photos/400/400?random=3',
              backPrompt: '年轻男性，黑发，穿着休闲，背面视角',
              backDescription: '主角背面特写',
              halfBodyImageUrl: 'https://picsum.photos/400/600?random=4',
              halfBodyPrompt: '年轻男性，黑发，穿着休闲，半身像',
              halfBodyDescription: '主角半身像'
            },
            {
              id: 2,
              name: '女主角',
              description: '聪明独立的女性，是故事的关键人物',
              wholeBodyFrontImageUrl: 'https://picsum.photos/400/400?random=5',
              mainPrompt: '年轻女性，棕发，穿着时尚，表情自信',
              mainDescription: '女主角正面特写',
              wholeBodySideImageUrl: 'https://picsum.photos/400/400?random=6',
              sidePrompt: '年轻女性，棕发，穿着时尚，侧面视角',
              sideDescription: '女主角侧面特写',
              wholeBodyBackImageUrl: 'https://picsum.photos/400/400?random=7',
              backPrompt: '年轻女性，棕发，穿着时尚，背面视角',
              backDescription: '女主角背面特写',
              halfBodyImageUrl: 'https://picsum.photos/400/600?random=8',
              halfBodyPrompt: '年轻女性，棕发，穿着时尚，半身像',
              halfBodyDescription: '女主角半身像'
            },
            {
              id: 3,
              name: '反派',
              description: '故事的主要对手，狡猾且危险',
              wholeBodyFrontImageUrl: 'https://picsum.photos/400/400?random=9',
              mainPrompt: '中年男性，灰发，穿着黑色西装，表情阴险',
              mainDescription: '反派正面特写',
              wholeBodySideImageUrl: 'https://picsum.photos/400/400?random=10',
              sidePrompt: '中年男性，灰发，穿着黑色西装，侧面视角',
              sideDescription: '反派侧面特写',
              wholeBodyBackImageUrl: 'https://picsum.photos/400/400?random=11',
              backPrompt: '中年男性，灰发，穿着黑色西装，背面视角',
              backDescription: '反派背面特写',
              halfBodyImageUrl: 'https://picsum.photos/400/600?random=12',
              halfBodyPrompt: '中年男性，灰发，穿着黑色西装，半身像',
              halfBodyDescription: '反派半身像'
            }
          ]
        },
        timestamp: new Date().toISOString()
      }
    }
  },
  {
    url: '/evox-drama/series/drama/:dramaId',
    method: 'get',
    response: ({ params }) => {
      return {
        status: 0,
        code: 0,
        message: 'success',
        data: [
          {
            seriesId: "1936646128946860032_1",
            dramaId: 1936646128946860032,
            seqNo: 1,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/50c58902c846439cbe9ac8bc7fdf0bfb.txt",
            createAt: 1750569251787,
            updateAt: 1750569251787
          },
          {
            seriesId: "1936646128946860032_2",
            dramaId: 1936646128946860032,
            seqNo: 2,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/bc77bfd3a81544dcb8ca44e83e4342d1.txt",
            createAt: 1750569252026,
            updateAt: 1750569252026
          },
          {
            seriesId: "1936646128946860032_3",
            dramaId: 1936646128946860032,
            seqNo: 3,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/a27f82d23ce24adbbbb8edf1e0cb9a02.txt",
            createAt: 1750569252219,
            updateAt: 1750569252219
          },
          {
            seriesId: "1936646128946860032_4",
            dramaId: 1936646128946860032,
            seqNo: 4,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/c90ae591dd6c4adf8940acf0cf7d0fe8.txt",
            createAt: 1750569252403,
            updateAt: 1750569252403
          },
          {
            seriesId: "1936646128946860032_5",
            dramaId: 1936646128946860032,
            seqNo: 5,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/54f82ce521df41a6b55d63af1cd840d9.txt",
            createAt: 1750569252595,
            updateAt: 1750569252595
          },
          {
            seriesId: "1936646128946860032_6",
            dramaId: 1936646128946860032,
            seqNo: 6,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/541bbfb5fb774f769e445cd47ee8526d.txt",
            createAt: 1750569252792,
            updateAt: 1750569252792
          },
          {
            seriesId: "1936646128946860032_7",
            dramaId: 1936646128946860032,
            seqNo: 7,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/58e690c714d04ae7bd57d7087aa79d73.txt",
            createAt: 1750569252982,
            updateAt: 1750569252982
          },
          {
            seriesId: "1936646128946860032_8",
            dramaId: 1936646128946860032,
            seqNo: 8,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/e2f75fd6629a4f5695216ebd55aa62d6.txt",
            createAt: 1750569253178,
            updateAt: 1750569253178
          },
          {
            seriesId: "1936646128946860032_9",
            dramaId: 1936646128946860032,
            seqNo: 9,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/cde27274c60743b9bc10836a6188b646.txt",
            createAt: 1750569253395,
            updateAt: 1750569253395
          },
          {
            seriesId: "1936646128946860032_10",
            dramaId: 1936646128946860032,
            seqNo: 10,
            fileUrl: "https://evox-drama-beijing-public.oss-cn-beijing.aliyuncs.com/files/2025/06/22/1449ae4d6b6443e7a8dfe4f12a95a7cb.txt",
            createAt: 1750569253591,
            updateAt: 1750569253591
          }
        ],
        timestamp: new Date().toISOString()
      }
    }
  }
] 